/*
 * Some lookup tables of powers of 2, used for describing the number of
 * hosts or networks in a given group.
 * XXX This isn't really well suited for localization...
 */

#ifndef __LIBCIDR__POW2_P_H
#define __LIBCIDR__POW2_P_H

/* Powers of two */
static const char *__cidr_pow2[] = {
		"1",
		"2",
		"4",
		"8",
		"16",
		"32",
		"64",
		"128",
		"256",
		"512",
		"1,024",
		"2,048",
		"4,096",
		"8,192",
		"16,384",
		"32,768",
		"65,536",
		"131,072",
		"262,144",
		"524,288",
		"1,048,576",
		"2,097,152",
		"4,194,304",
		"8,388,608",
		"16,777,216",
		"33,554,432",
		"67,108,864",
		"134,217,728",
		"268,435,456",
		"536,870,912",
		"1,073,741,824",
		"2,147,483,648",
		"4,294,967,296",
		"8,589,934,592",
		"17,179,869,184",
		"34,359,738,368",
		"68,719,476,736",
		"137,438,953,472",
		"274,877,906,944",
		"549,755,813,888",
		"1,099,511,627,776",
		"2,199,023,255,552",
		"4,398,046,511,104",
		"8,796,093,022,208",
		"17,592,186,044,416",
		"35,184,372,088,832",
		"70,368,744,177,664",
		"140,737,488,355,328",
		"281,474,976,710,656",
		"562,949,953,421,312",
		"1,125,899,906,842,624",
		"2,251,799,813,685,248",
		"4,503,599,627,370,496",
		"9,007,199,254,740,992",
		"18,014,398,509,481,984",
		"36,028,797,018,963,968",
		"72,057,594,037,927,936",
		"144,115,188,075,855,872",
		"288,230,376,151,711,744",
		"576,460,752,303,423,488",
		"1,152,921,504,606,846,976",
		"2,305,843,009,213,693,952",
		"4,611,686,018,427,387,904",
		"9,223,372,036,854,775,808",
		"18,446,744,073,709,551,616",
		"36,893,488,147,419,103,232",
		"73,786,976,294,838,206,464",
		"147,573,952,589,676,412,928",
		"295,147,905,179,352,825,856",
		"590,295,810,358,705,651,712",
		"1,180,591,620,717,411,303,424",
		"2,361,183,241,434,822,606,848",
		"4,722,366,482,869,645,213,696",
		"9,444,732,965,739,290,427,392",
		"18,889,465,931,478,580,854,784",
		"37,778,931,862,957,161,709,568",
		"75,557,863,725,914,323,419,136",
		"151,115,727,451,828,646,838,272",
		"302,231,454,903,657,293,676,544",
		"604,462,909,807,314,587,353,088",
		"1,208,925,819,614,629,174,706,176",
		"2,417,851,639,229,258,349,412,352",
		"4,835,703,278,458,516,698,824,704",
		"9,671,406,556,917,033,397,649,408",
		"19,342,813,113,834,066,795,298,816",
		"38,685,626,227,668,133,590,597,632",
		"77,371,252,455,336,267,181,195,264",
		"154,742,504,910,672,534,362,390,528",
		"309,485,009,821,345,068,724,781,056",
		"618,970,019,642,690,137,449,562,112",
		"1,237,940,039,285,380,274,899,124,224",
		"2,475,880,078,570,760,549,798,248,448",
		"4,951,760,157,141,521,099,596,496,896",
		"9,903,520,314,283,042,199,192,993,792",
		"19,807,040,628,566,084,398,385,987,584",
		"39,614,081,257,132,168,796,771,975,168",
		"79,228,162,514,264,337,593,543,950,336",
		"158,456,325,028,528,675,187,087,900,672",
		"316,912,650,057,057,350,374,175,801,344",
		"633,825,300,114,114,700,748,351,602,688",
		"1,267,650,600,228,229,401,496,703,205,376",
		"2,535,301,200,456,458,802,993,406,410,752",
		"5,070,602,400,912,917,605,986,812,821,504",
		"10,141,204,801,825,835,211,973,625,643,008",
		"20,282,409,603,651,670,423,947,251,286,016",
		"40,564,819,207,303,340,847,894,502,572,032",
		"81,129,638,414,606,681,695,789,005,144,064",
		"162,259,276,829,213,363,391,578,010,288,128",
		"324,518,553,658,426,726,783,156,020,576,256",
		"649,037,107,316,853,453,566,312,041,152,512",
		"1,298,074,214,633,706,907,132,624,082,305,024",
		"2,596,148,429,267,413,814,265,248,164,610,048",
		"5,192,296,858,534,827,628,530,496,329,220,096",
		"10,384,593,717,069,655,257,060,992,658,440,192",
		"20,769,187,434,139,310,514,121,985,316,880,384",
		"41,538,374,868,278,621,028,243,970,633,760,768",
		"83,076,749,736,557,242,056,487,941,267,521,536",
		"166,153,499,473,114,484,112,975,882,535,043,072",
		"332,306,998,946,228,968,225,951,765,070,086,144",
		"664,613,997,892,457,936,451,903,530,140,172,288",
		"1,329,227,995,784,915,872,903,807,060,280,344,576",
		"2,658,455,991,569,831,745,807,614,120,560,689,152",
		"5,316,911,983,139,663,491,615,228,241,121,378,304",
		"10,633,823,966,279,326,983,230,456,482,242,756,608",
		"21,267,647,932,558,653,966,460,912,964,485,513,216",
		"42,535,295,865,117,307,932,921,825,928,971,026,432",
		"85,070,591,730,234,615,865,843,651,857,942,052,864",
		"170,141,183,460,469,231,731,687,303,715,884,105,728",
		"340,282,366,920,938,463,463,374,607,431,768,211,456"};


/* Powers of 2 minus two; hosts in a subnet with this many host bit */
static const char *__cidr_pow2m2[] = {
		"1", /* Special */
		"2", /* Special */
		"2",
		"6",
		"14",
		"30",
		"62",
		"126",
		"254",
		"510",
		"1,022",
		"2,046",
		"4,094",
		"8,190",
		"16,382",
		"32,766",
		"65,534",
		"131,070",
		"262,142",
		"524,286",
		"1,048,574",
		"2,097,150",
		"4,194,302",
		"8,388,606",
		"16,777,214",
		"33,554,430",
		"67,108,862",
		"134,217,726",
		"268,435,454",
		"536,870,910",
		"1,073,741,822",
		"2,147,483,646",
		"4,294,967,294",
		"8,589,934,590",
		"17,179,869,182",
		"34,359,738,366",
		"68,719,476,734",
		"137,438,953,470",
		"274,877,906,942",
		"549,755,813,886",
		"1,099,511,627,774",
		"2,199,023,255,550",
		"4,398,046,511,102",
		"8,796,093,022,206",
		"17,592,186,044,414",
		"35,184,372,088,830",
		"70,368,744,177,662",
		"140,737,488,355,326",
		"281,474,976,710,654",
		"562,949,953,421,310",
		"1,125,899,906,842,622",
		"2,251,799,813,685,246",
		"4,503,599,627,370,494",
		"9,007,199,254,740,990",
		"18,014,398,509,481,982",
		"36,028,797,018,963,966",
		"72,057,594,037,927,934",
		"144,115,188,075,855,870",
		"288,230,376,151,711,742",
		"576,460,752,303,423,486",
		"1,152,921,504,606,846,974",
		"2,305,843,009,213,693,950",
		"4,611,686,018,427,387,902",
		"9,223,372,036,854,775,806",
		"18,446,744,073,709,551,614",
		"36,893,488,147,419,103,230",
		"73,786,976,294,838,206,462",
		"147,573,952,589,676,412,926",
		"295,147,905,179,352,825,854",
		"590,295,810,358,705,651,710",
		"1,180,591,620,717,411,303,422",
		"2,361,183,241,434,822,606,846",
		"4,722,366,482,869,645,213,694",
		"9,444,732,965,739,290,427,390",
		"18,889,465,931,478,580,854,782",
		"37,778,931,862,957,161,709,566",
		"75,557,863,725,914,323,419,134",
		"151,115,727,451,828,646,838,270",
		"302,231,454,903,657,293,676,542",
		"604,462,909,807,314,587,353,086",
		"1,208,925,819,614,629,174,706,174",
		"2,417,851,639,229,258,349,412,350",
		"4,835,703,278,458,516,698,824,702",
		"9,671,406,556,917,033,397,649,406",
		"19,342,813,113,834,066,795,298,814",
		"38,685,626,227,668,133,590,597,630",
		"77,371,252,455,336,267,181,195,262",
		"154,742,504,910,672,534,362,390,526",
		"309,485,009,821,345,068,724,781,054",
		"618,970,019,642,690,137,449,562,110",
		"1,237,940,039,285,380,274,899,124,222",
		"2,475,880,078,570,760,549,798,248,446",
		"4,951,760,157,141,521,099,596,496,894",
		"9,903,520,314,283,042,199,192,993,790",
		"19,807,040,628,566,084,398,385,987,582",
		"39,614,081,257,132,168,796,771,975,166",
		"79,228,162,514,264,337,593,543,950,334",
		"158,456,325,028,528,675,187,087,900,670",
		"316,912,650,057,057,350,374,175,801,342",
		"633,825,300,114,114,700,748,351,602,686",
		"1,267,650,600,228,229,401,496,703,205,374",
		"2,535,301,200,456,458,802,993,406,410,750",
		"5,070,602,400,912,917,605,986,812,821,502",
		"10,141,204,801,825,835,211,973,625,643,006",
		"20,282,409,603,651,670,423,947,251,286,014",
		"40,564,819,207,303,340,847,894,502,572,030",
		"81,129,638,414,606,681,695,789,005,144,062",
		"162,259,276,829,213,363,391,578,010,288,126",
		"324,518,553,658,426,726,783,156,020,576,254",
		"649,037,107,316,853,453,566,312,041,152,510",
		"1,298,074,214,633,706,907,132,624,082,305,022",
		"2,596,148,429,267,413,814,265,248,164,610,046",
		"5,192,296,858,534,827,628,530,496,329,220,094",
		"10,384,593,717,069,655,257,060,992,658,440,190",
		"20,769,187,434,139,310,514,121,985,316,880,382",
		"41,538,374,868,278,621,028,243,970,633,760,766",
		"83,076,749,736,557,242,056,487,941,267,521,534",
		"166,153,499,473,114,484,112,975,882,535,043,070",
		"332,306,998,946,228,968,225,951,765,070,086,142",
		"664,613,997,892,457,936,451,903,530,140,172,286",
		"1,329,227,995,784,915,872,903,807,060,280,344,574",
		"2,658,455,991,569,831,745,807,614,120,560,689,150",
		"5,316,911,983,139,663,491,615,228,241,121,378,302",
		"10,633,823,966,279,326,983,230,456,482,242,756,606",
		"21,267,647,932,558,653,966,460,912,964,485,513,214",
		"42,535,295,865,117,307,932,921,825,928,971,026,430",
		"85,070,591,730,234,615,865,843,651,857,942,052,862",
		"170,141,183,460,469,231,731,687,303,715,884,105,726",
		"340,282,366,920,938,463,463,374,607,431,768,211,454"};


#endif /* __LIBCIDR__POW2_P_H */
